#include "../inc/test.h"
#include "../inc/font.h"
#include "../inc/lcd.h"


void showbitmap(bitmap *bm, int x, int y)
{
    // 准备好LCD设备（如果多次显示，应该只做一遍）

    // 字体的信息：
    // bm->width;
    // bm->height;
    // bm->byteperpixel;
    // bm->map; // 指向RGB数据，没有上下颠倒，也没有一行4字节倍数的约束，就是纯粹的RGB

    printf("width:%d, height:%d, byteperpixel:%d\n", bm->width, bm->height, bm->byteperpixel);

    for(int j=0; j<bm->height; j++)
    {
        for(int i=0; i<bm->width; i++)
        {         
            int bgrIndex = (j * bm->width + i) * 4;
            lcd_p[j+y][i+x] =  (bm->map[bgrIndex + 3] << 24) | (bm->map[bgrIndex + 2] << 16) | (bm->map[bgrIndex + 1] << 8) | bm->map[bgrIndex];
        }
    }
}

int main_font_library(int x, int y ,char* arr)
{
    //lcd_init();
    
    //1.初始化字库 
    // 注意要先将ttf文件放入开发板上
    font *f = fontLoad("simfang.ttf"); // 指定字库文件，比如simfang.ttf

    //2.设置字体的大小 
    fontSetSize(f, 24);

    //3.设置字体输出框的大小
    bitmap *bm;
    bm = createBitmapWithInit(60, 20, 4, 0xFFFFFFFF);

    //4.把字体输出到输出框中
    fontPrint(f, bm, 0, 0, arr, 0x00000000, 0);

    //5.将bm妥善地放置到LCD上显示出来
    showbitmap(bm, x, y);

    return 0;
}
